package com.yuelao.yuelao_backend.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 邀请记录表
 */
@Data
@TableName("invite_records")
public class InviteRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 邀请人ID
     */
    private Long inviterId;

    /**
     * 被邀请人ID
     */
    private Long inviteeId;

    /**
     * 邀请码
     */
    private String inviteCode;

    /**
     * 邀请人奖励（以分为单位）
     */
    private Integer inviterReward;

    /**
     * 被邀请人奖励（以分为单位）
     */
    private Integer inviteeReward;

    /**
     * 状态: pending-待完成, completed-已完成, expired-已过期, rewarded-奖励已领取
     */
    private String status;

    /**
     * 注册时间
     */
    private LocalDateTime registeredAt;

    /**
     * 完成时间
     */
    private LocalDateTime completedAt;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
    
    /**
     * 设置邀请时间（兼容方法）
     * @param inviteTime 邀请时间
     */
    public void setInviteTime(LocalDateTime inviteTime) {
        this.createdAt = inviteTime;
    }
    
    /**
     * 设置注册时间（兼容方法）
     * @param registerTime 注册时间
     */
    public void setRegisterTime(LocalDateTime registerTime) {
        this.registeredAt = registerTime;
    }
    
    /**
     * 设置奖励领取时间（兼容方法）
     * @param rewardClaimTime 奖励领取时间
     */
    public void setRewardClaimTime(LocalDateTime rewardClaimTime) {
        this.completedAt = rewardClaimTime;
    }
}
